home *** CD-ROM | disk | FTP | other *** search
- FRAME_WIDTH = frame_mc._width;
- FRAME_HEIGHT = frame_mc._height;
- CLICK_ZOOM_FACTOR = 3;
- MAX_SCALE = 900;
- marquee_mc._visible = false;
- cursor_mc._visible = false;
- zoom_out_btn._visible = false;
- arrZoomDetails = [];
- blnZoomCursor = false;
- nmMapClipX = map_mc._x;
- nmMapClipY = map_mc._y;
- nmMapScale = map_mc._xscale;
- setMap = function(x, y, scale)
- {
- map_mc._x = x;
- map_mc._y = y;
- map_mc._xscale = map_mc._yscale = scale;
- LEAmap.oBroadcaster.broadcastMessage("onZoomChange",scale);
- };
- killZoomCursor = function()
- {
- blnZoomCursor = false;
- cursor_mc._visible = false;
- cursor_mc.stopDrag();
- Mouse.show();
- };
- zoomIn = function()
- {
- if(!blnZoomCursor)
- {
- blnZoomCursor = true;
- cursor_mc._visible = true;
- cursor_mc.startDrag(true,frame_mc._x,frame_mc._y,frame_mc._x + FRAME_WIDTH,frame_mc._y + FRAME_HEIGHT);
- Mouse.hide();
- }
- else
- {
- killZoomCursor();
- }
- };
- zoomOut = function()
- {
- var _loc2_ = arrZoomDetails.length;
- if(_loc2_ > 0)
- {
- var _loc1_ = arrZoomDetails.pop();
- setMap(_loc1_.x,_loc1_.y,_loc1_.scale);
- if(_loc2_ == 1)
- {
- zoom_out_btn._visible = false;
- }
- }
- };
- logZoomDetails = function()
- {
- var _loc1_ = {};
- _loc1_.x = map_mc._x;
- _loc1_.y = map_mc._y;
- _loc1_.scale = map_mc._xscale;
- arrZoomDetails.push(_loc1_);
- };
- resetZoom = function()
- {
- setMap(nmMapClipX,nmMapClipY,nmMapScale);
- };
- cursor_mc.onPress = function()
- {
- var _loc1_ = this;
- if(blnZoomCursor)
- {
- _loc1_.nmClickX = map_mc._xmouse;
- _loc1_.nmClickY = map_mc._ymouse;
- _loc1_.onMouseMove = function()
- {
- var _loc1_ = this;
- marquee_mc._visible = true;
- _loc1_.nmX = marquee_mc._x = _xmouse;
- _loc1_.nmY = marquee_mc._y = _ymouse;
- marquee_mc._width = 0;
- marquee_mc._height = 0;
- _loc1_.onMouseMove = function()
- {
- var _loc1_ = this;
- var _loc2_ = _loc1_._x - _loc1_.nmX;
- var _loc3_ = _loc1_._y - _loc1_.nmY;
- if(_loc2_ < 0)
- {
- marquee_mc._x = _loc1_.nmX + _loc2_;
- _loc1_.blnXswap = true;
- }
- else
- {
- _loc1_.blnXswap = false;
- }
- if(_loc3_ < 0)
- {
- marquee_mc._y = _loc1_.nmY + _loc3_;
- _loc1_.blnYswap = true;
- }
- else
- {
- _loc1_.blnYswap = false;
- }
- marquee_mc._width = Math.abs(_loc2_);
- marquee_mc._height = Math.abs(_loc3_);
- };
- };
- }
- };
- hideMarquee = function()
- {
- marquee_mc._visible = false;
- };
- cursor_mc.onRelease = function()
- {
- var _loc3_ = this;
- killZoomCursor();
- delete _loc3_.onMouseMove;
- if(_loc3_.hitTest(zoom_btn))
- {
- hideMarquee();
- }
- else if(_loc3_.hitTest(zoom_out_btn))
- {
- hideMarquee();
- zoomOut();
- }
- else
- {
- logZoomDetails();
- var _loc2_ = undefined;
- var nmYoffset;
- var _loc1_ = undefined;
- if(marquee_mc._visible)
- {
- hideMarquee();
- var nmMW = marquee_mc._width;
- var nmMH = marquee_mc._height;
- _loc2_ = FRAME_WIDTH / nmMW;
- _loc1_ = _loc2_ * map_mc._xscale;
- if(_loc1_ > MAX_SCALE)
- {
- _loc1_ = MAX_SCALE;
- _loc2_ = _loc1_ / map_mc._xscale;
- var nmAW = FRAME_WIDTH / _loc2_;
- marquee_mc._width = nmAW;
- var nmAH = marquee_mc._height = nmAW * (nmMH / nmMW);
- marquee_mc._x -= (nmAW - nmMW) / 2;
- marquee_mc._y -= (nmAH - nmMH) / 2;
- nmMW = nmAW;
- nmMH = nmAH;
- }
- var nmCurrentS = 1 / (map_mc._xscale / 100);
- _loc3_.nmClickX = (marquee_mc._x - map_mc._x) * nmCurrentS;
- _loc3_.nmClickY = (marquee_mc._y - map_mc._y) * nmCurrentS;
- nmYoffset = nmMH * _loc2_;
- }
- else
- {
- _loc2_ = CLICK_ZOOM_FACTOR;
- nmYoffset = 0;
- _loc1_ = _loc2_ * map_mc._xscale;
- _loc1_ = Math.min(MAX_SCALE,_loc1_);
- }
- var nmS = _loc1_ / 100;
- var x = nmMapClipX - _loc3_.nmClickX * nmS;
- var y = nmMapClipY - _loc3_.nmClickY * nmS;
- if(nmYoffset == 0)
- {
- x += FRAME_WIDTH / 2;
- }
- y += (FRAME_HEIGHT - nmYoffset) / 2;
- setMap(x,y,_loc1_);
- }
- };
-